home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Hacks / Hacks ’97 / Crash & Burn / source code / flames.h < prev    next >
C/C++ Source or Header  |  1997-06-27  |  2KB  |  43 lines

  1. #pragma once
  2. #include <QDOffscreen.h>
  3.  
  4.  
  5. typedef struct {
  6.     Boolean        burning;
  7.     Boolean        isValid;
  8.     GrafPtr        flamePort;            /* port where the fire is drawn */
  9.     void        *flameTaskPtr;
  10.     GWorldPtr    DrawingArea;        /* offscreen world where fire really lives */
  11.     CTabHandle    fireCLUT;
  12.     PixMapHandle    offPixMap;
  13.     short        maxColor;
  14.     short        maxFlameWidth,        /* minimum width of flames/empty spaces */
  15.                 minFlameWidth;        /* maximum width of flames/empty spaces */
  16.     short        density,             /* proportion of flames to empty spaces */
  17.                 fadePerStep,         /* determines longevity */
  18.                 timePerFrame;        /* determines maximum rate */
  19.     Rect        offRect,
  20.                 copyRect,
  21.                 fireRect;
  22.     short        BUF_WIDTH,
  23.                 BUF_HEIGHT,
  24.                 BitMapWidth;
  25.     unsigned char    *basePixels;    /* pointer to the pixmap's base address */
  26. } FlameDataRec, *FlameDataRecPtr;
  27.  
  28. FlameDataRecPtr MakeNewFlames (GrafPtr thePort, Rect *flameBounds,
  29.                                 short minFlameWidth, short maxFlameWidth,
  30.                                 double flameDensity, double fadeRate, 
  31.                                 short maxFPS, CTabHandle itsCLUT);
  32. void    LockFlames(FlameDataRecPtr inFlames);
  33.  
  34. void FreeFlames (FlameDataRecPtr *F);
  35. void StartFlames (FlameDataRecPtr F);
  36. void StopFlames (FlameDataRecPtr F);
  37. short StepFlames(FlameDataRecPtr register F);
  38. void ChangeFlameDensity (FlameDataRecPtr F, double newDensity);
  39. void ChangeFlameWidth (FlameDataRecPtr F, short newMinWidth, short newMaxWidth);
  40. void ChangeFlameFadeRate (FlameDataRecPtr F, double newFadeRate);
  41. void ChangeFlameFPS (FlameDataRecPtr F, short newFPS);
  42.  
  43. void IdleFlames(FlameDataRecPtr    F);